home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs07.d81 / speed.prg (.txt) < prev    next >
Commodore BASIC  |  2009-10-10  |  5KB  |  135 lines

  1. 5 POKE56,160:CLR:DIMS,N,X,Y,D,I,H,U,E,G,P,Q,A$,A(2000)
  2. 10 PRINT"[147][142]ONE MOMENT PLEASE..."
  3. 15 FORI=.TO279:READY:POKEI+49152,Y:NEXT
  4. 20 GOTO500
  5. 25 OPEN15,D,15:PRINT#15,"B-P";8;0
  6. 30 FORI=.TO58:PRINT#8,CHR$(PEEK(I+49373));:NEXT
  7. 35 CLOSE8:N=.:E=56576:G=56321:H=32:U=1:PRINT"[147]"
  8. 40 POKE139,156:POKE140,18:POKE141,77:POKE142,98:POKE143,248
  9. 45 PRINT#15,"I0:"
  10. 50 PRINT#15,"U3:"
  11. 60 POKEE,23:SYS49152
  12. 65 SYS49152
  13. 70 N=N+U:A(N)=S:PRINTN,,S
  14. 75 IFPEEK(G)ANDHTHENSYS49191:GOTO70
  15. 80 SYS59060:POKEE,7:POKE198,.:CLOSE15
  16. 85 PRINT"             PRESS RETURN."
  17. 90 GETA$:IFA$=CHR$(13)THEN100
  18. 95 GOTO90
  19. 100 PRINT"[147]PRESS M FOR MAIN MENU."
  20. 105 PRINT"PRESS R TO REVIEW READINGS."
  21. 110 PRINT"PRESS X TO EXIT."
  22. 115 GETA$:IFA$="M"THEN500
  23. 120 IFA$="R"THEN135
  24. 125 IFA$="X"THENEND
  25. 130 GOTO115
  26. 135 PRINT"[147]PRESS S TO SEND DATA TO SCREEN."
  27. 140 PRINT"PRESS P TO SEND DATA TO PRINTER."
  28. 145 GETA$:IFA$="S"THEN160
  29. 150 IFA$="P"THEN300
  30. 155 GOTO145
  31. 160 PRINT"[147]ENTER STARTING READING NUMBER (> 0)."
  32. 165 X=1:PRINT:INPUTX:IFX<1THEN160
  33. 170 PRINT"ENTER ENDING READING NUMBER (<";N+1;")."
  34. 172 Y=N:PRINT:INPUTY:IFY>NTHEN170
  35. 175 P=.:Q=P:PRINT"[147]READING #         SPEED (RPM'S)"
  36. 177 PRINT"[163][163][163][163][163][163][163][163][163]         [163][163][163][163][163][163][163][163][163][163][163][163][163]"
  37. 180 FORI=XTOY:PRINTI,,A(I):P=P+1:Q=1/A(I)+Q:NEXT:Q=INT(10*P/Q+.5)/10
  38. 185 PRINT"AVERAGE SPEED =";Q;"RPM."
  39. 190 PRINT"             PRESS RETURN."
  40. 195 GETA$:IFA$=CHR$(13)THEN205
  41. 200 GOTO195
  42. 205 PRINT"[147]PRESS M FOR LAST MENU."
  43. 210 PRINT"PRESS R FOR ANOTHER SET OF READINGS."
  44. 215 GETA$:IFA$="M"THEN100
  45. 220 IFA$="R"THEN160
  46. 230 GOTO215
  47. 300 PRINT"[147]ENTER STARTING READING NUMBER (> 0)."
  48. 305 PRINT:INPUTX:IFX<1THEN160
  49. 310 PRINT"ENTER ENDING READING NUMBER (<";N+1;")."
  50. 312 PRINT:INPUTY:IFY>NTHEN170
  51. 315 PRINT"[147]PRINTING..."
  52. 317 OPEN4,4:CMD4:PRINTCHR$(27);"A";
  53. 320 P=.:Q=P:PRINT"READING #         SPEED (RPM'S)"
  54. 325 PRINT"[163][163][163][163][163][163][163][163][163]         [163][163][163][163][163][163][163][163][163][163][163][163][163]"
  55. 330 FORI=XTOY:PRINTI;CHR$(16);"20";A(I):P=P+1:Q=1/A(I)+Q
  56. 332 NEXT:Q=INT(10*P/Q+.5)/10
  57. 335 PRINT:PRINT"AVERAGE SPEED =";Q;"RPM'S."
  58. 340 PRINT#4:CLOSE4
  59. 345 PRINT"PRESS M FOR LAST MENU."
  60. 350 PRINT"PRESS R FOR ANOTHER SET OF READINGS."
  61. 355 GETA$:IFA$="M"THEN100
  62. 360 IFA$="R"THEN300
  63. 365 GOTO355
  64. 500 PRINT"[147][142]PRESS D FOR DOCUMENTATION."
  65. 505 PRINT"PRESS S FOR SPEED CHECK."
  66. 510 PRINT"PRESS X TO EXIT."
  67. 515 GETA$:IFA$="D"THEN535
  68. 520 IFA$="S"THEN800
  69. 525 IFA$="X"THENEND
  70. 530 GOTO515
  71. 535 PRINT"[147][212]HIS PROGRAM WILL MEASURE THE SPINDLE"
  72. 540 PRINT"MOTOR SPEED OF A 1541 DISK DRIVE.  [212]HE"
  73. 545 PRINT"NOMINAL SPEED IS 300 [210][208][205], BUT THE SPEED"
  74. 550 PRINT"CAN CHANGE SUDDENLY, FROM A FAILURE, OR"
  75. 555 PRINT"GRADUALLY, FROM AGING OF COMPONENTS."
  76. 560 PRINT"[212]HE PROGRAM SIMPLY SENDS A SHORT 6502"
  77. 565 PRINT"ROUTINE TO THE DRIVE AND THEN EXECUTES"
  78. 570 PRINT"IT.  [212]HAT CAUSES THE 1541 TO ROTATE THE"
  79. 575 PRINT"SPINDLE MOTOR, AND SEND A PULSE OVER THE"
  80. 580 PRINT"[201][197][195] (SERIAL) BUS ONCE EACH REVOLUTION."
  81. 581 PRINT"             [208][210][197][211][211] [210][197][212][213][210][206]."
  82. 582 GETA$:IFA$=CHR$(13)THEN585
  83. 583 GOTO582
  84. 585 PRINT"[147][212]HE COMPUTER MEASURES THE TIME INTERVAL"
  85. 590 PRINT"BETWEEN SUCCESSIVE PULSES, AND"
  86. 595 PRINT"CALCULATES AND DISPLAYS THE SPEED IN"
  87. 600 PRINT"[210][208][205]'S.  [212]HUS, A READING IS PRINTED TO"
  88. 605 PRINT"THE SCREEN FIVE TIMES PER SECOND.  [212]HE"
  89. 610 PRINT"ACCURACY IS +/- 0.1 [210][208][205].  [213]P TO 2000"
  90. 615 PRINT"READINGS ARE STORED, FOR LATER"
  91. 620 PRINT"EXAMINATION (OVER 6 MINUTES WORTH)."
  92. 625 PRINT"[212]O END THE TEST, AND TURN OFF THE"
  93. 630 PRINT"MOTOR, PRESS THE COMKEY ([195]=)."
  94. 635 PRINT"      [208][210][197][211][211] [210][197][212][213][210][206] [198][207][210] [205][193][201][206] [205][197][206][213]."
  95. 640 GETA$:IFA$=CHR$(13)THEN500
  96. 645 GOTO640
  97. 800 PRINT"[147]"
  98. 805 PRINT"ENTER DISK DRIVE DEVICE NUMBER."
  99. 810 PRINT"  8[145]":INPUTD:IFD-8AND252THENPRINT"ILLEGAL DEVICE NUMBER":GOTO805
  100. 815 POKE183,2:POKE184,8:POKE185,8:POKE186,D:POKE187,253:POKE188,.
  101. 820 POKE253,35:POKE254,50:SYS65472
  102. 825 IFPEEK(783)AND1THENPRINT"[147]?DEVICE";D;"NOT PRESENT":CLOSE8:GOTO805
  103. 830 GOTO25
  104. 1000 DATA120,24,165,45,105,2,133,251,165
  105. 1010 DATA46,105,0,133,252,169,3,141,4
  106. 1020 DATA221,169,0,141,5,221,169,17,141
  107. 1030 DATA14,221,169,254,141,6,221,169
  108. 1040 DATA255,141,7,221,162,79,189,141
  109. 1050 DATA192,157,0,4,202,16,247,162,0
  110. 1060 DATA169,89,44,0,221,16,251,142,15
  111. 1070 DATA221,174,7,221,172,6,221,141,15
  112. 1080 DATA221,138,73,255,170,152,73,255
  113. 1090 DATA160,0,56,32,135,175,32,126,175
  114. 1100 DATA169,17,160,191,32,103,184,169
  115. 1110 DATA139,160,0,32,15,187,169,17,160
  116. 1120 DATA191,32,103,184,32,204,188,32
  117. 1130 DATA12,188,169,249,160,186,32,162
  118. 1140 DATA187,169,0,133,111,165,97,32,18
  119. 1150 DATA187,32,27,188,166,251,164,252
  120. 1160 DATA32,212,187,96,18,5,1,4,9,14,7
  121. 1170 DATA32,35,32,32,32,32,32,32,32,32
  122. 1180 DATA32,19,16,5,5,4,32,40,18,16,13
  123. 1190 DATA41,32,32,32,32,32,32,32,32,32
  124. 1200 DATA32,32,99,99,99,99,99,99,99,99
  125. 1210 DATA99,32,32,32,32,32,32,32,32,32
  126. 1220 DATA99,99,99,99,99,99,99,99,99,99
  127. 1230 DATA99,32,32,32,32,32,32,32,32,32
  128. 1240 DATA32,32
  129. 1250 DATA120,169,0,141,3,28,173,12,28
  130. 1260 DATA9,34,141,12,28,173,0,28,9,4,141
  131. 1270 DATA0,28,32,16,245,169,0,141,0,24
  132. 1280 DATA169,4,44,0,24,208,10,173,0,28
  133. 1290 DATA41,251,141,0,28,88,96,162,0,202
  134. 1300 DATA208,253,169,2,141,0,24,208,219
  135.